package model;

public class Student extends Person {
    private Course selectedCourse; // 学生选修的课程

    // 构造方法：调用 super 初始化父类属性
    public Student(String id, String name, String gender) {
        super(id, name, gender);
    }

    // 选课方法
    public void selectCourse(Course course) {
        if (this.selectedCourse != null) {
            dropCourse();
        }
        this.selectedCourse = course;
        System.out.println(getName() + "（学生）成功选修课程：" + course.getCourseName());
    }

    // 退课方法
    public void dropCourse() {
        if (this.selectedCourse != null) {
            System.out.println(getName() + "（学生）成功退课：" + selectedCourse.getCourseName());
            this.selectedCourse = null;
        } else {
            System.out.println(getName() + "（学生）当前未选课，无需退课");
        }
    }

    // 重写打印信息：打印学生课表（扩展父类 printInfo）
    @Override
    public void printInfo() {
        super.printInfo();
        System.out.println("--- 学生课表信息 ---");
        if (this.selectedCourse != null) {
            System.out.println("选修课程：" + selectedCourse.getCourseName());
            System.out.println("上课地点：" + selectedCourse.getLocation());
            System.out.println("上课时间：" + selectedCourse.getTime());
            System.out.println("授课教师：" + selectedCourse.getTeacher().getName());
        } else {
            System.out.println("当前未选修任何课程");
        }
        System.out.println();
    }
}